import request from './request';

/**
 * 获取个人薪资
 * @returns {Promise}
 */
export function getMySalary() {
  return request({
    url: '/salary/me',
    method: 'get'
  });
}

/**
 * 获取当前月薪资
 * @returns {Promise}
 */
export function getCurrentMonthlySalary() {
  return request({
    url: '/salary/current',
    method: 'get'
  });
}

/**
 * 获取薪资历史
 * @param {Object} params - 查询参数
 * @param {string} params.startDate - 开始日期
 * @param {string} params.endDate - 结束日期
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页条数
 * @returns {Promise}
 */
export function getSalaryHistory(params) {
  return request({
    url: '/salary/history',
    method: 'get',
    params
  });
}

/**
 * 获取薪资列表（HR权限）
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页条数
 * @param {string} params.keyword - 关键词搜索
 * @param {string} params.year - 年份筛选
 * @param {string} params.month - 月份筛选
 * @param {string} params.status - 状态筛选
 * @returns {Promise}
 */
export function listSalaries(params) {
  return request({
    url: '/salary',
    method: 'get',
    params
  });
}

/**
 * 获取薪资详情
 * @param {number} id - 薪资记录ID
 * @returns {Promise}
 */
export function getSalary(id) {
  return request({
    url: `/salary/${id}`,
    method: 'get'
  });
}

/**
 * 创建薪资记录（HR权限）
 * @param {Object} data - 薪资信息
 * @returns {Promise}
 */
export function createSalary(data) {
  return request({
    url: '/salaries',
    method: 'post',
    data
  });
}

/**
 * 更新薪资记录（HR权限）
 * @param {number} id - 薪资记录ID
 * @param {Object} data - 薪资信息
 * @returns {Promise}
 */
export function updateSalary(id, data) {
  return request({
    url: `/salary/${id}`,
    method: 'put',
    data
  });
}

/**
 * 删除薪资记录（HR权限）
 * @param {number} id - 薪资记录ID
 * @returns {Promise}
 */
export function deleteSalary(id) {
  return request({
    url: `/salary/${id}`,
    method: 'delete'
  });
}

/**
 * 计算薪资（HR权限）
 * @param {Object} data - 薪资计算参数
 * @param {string} data.month - 月份，格式：YYYY-MM
 * @param {Array} data.employeeIds - 员工ID数组，为空则计算所有员工
 * @returns {Promise}
 */
export function calculateSalary(data) {
  return request({
    url: '/salary/calculate',
    method: 'post',
    data
  });
}

/**
 * 确认发放薪资（HR权限）
 * @param {Object} data - 确认参数
 * @param {string} data.month - 月份，格式：YYYY-MM
 * @param {Array} data.salaryIds - 薪资记录ID数组
 * @returns {Promise}
 */
export function confirmSalary(data) {
  return request({
    url: '/salary/confirm',
    method: 'post',
    data
  });
}